FSxNのVscanとTrendMicro ServerProtect for Storageを利用してSMB共有のウイルススキャンを試してみた
こんにちは、岩城です。
最近、FSxNのウイルス対策について考える機会が多く、
以下のAWSブログを参考にFSxNのVscanとTrend MicroのServer Protect for Storageを利用したウイルス対策を試したので内容を共有したいと思います。
Securing your Amazon FSx for ONTAP Windows Share (SMB) against Viruses | AWS Storage Blog
Vscanとは
Vscanは、ONTAPが提供するアンチウイルス/アンチマルウェアスキャン機能です。
Vscan単体ではスキャンを実行できず、ONTAPのパートナーが提供するアンチウイルス/アンチマルウェアソリューションと組み合わせて利用します。Vscanの主な役割は、これらのパートナーソリューションにスキャン処理をオフロードすることです。
ONTAPの公式ドキュメントの図を引用しながら、Vscanのウイルススキャンフローを説明します。
SVMからVscanサーバーにスキャンを要求し、Vscanサーバーにインストールされたアンチウイルス/アンチマルウェアソリューションがスキャンを実行します。その後、スキャン結果がSVMに返されます。デフォルトでは、スキャン要求されたファイル操作は、スキャン結果が返ってくるまで中断されます。
スキャン対象のファイルサイズが大きすぎると、Vscanの要求がタイムアウトし、ファイル操作に失敗する可能性があります。この問題に対処するため、以下のような調整が必要になってきます。
- 要求タイムアウトを延長する(最大40秒まで)
- スキャン対象ファイルサイズの上限を設定する
- 要求タイムアウトに達した場合でもファイルアクセスを許可するように設定する
- スキャン除外対象ファイルやパスを設定する
max-file-sizeの設定が高すぎるとVscanタイムアウトが発生する - NetApp
Vscanのスキャンタイプはオンアクセススキャンとオンデマンドスキャンの2つが提供されています。それぞれの特長は以下のとおりです。
- オンアクセススキャン
- クライアントがSMB経由でファイルをoepn、read、rename、closeをするたびにスキャンを実行する
- オンデマンドスキャン
- ファイルに対するスキャンを手動実行またはスケジュール実行する
Vscan上で動作するアンチウイルス/アンチマルウェアソリューションを提供するパートナーは、Trellix(旧McAfee)、Symantec、TrendMicro、Sentinel Oneです。
本エントリでは、AWSブログに従いTrendMicro ServerProtect for Storage(以降、ServerProtect)の体験版を使用して検証しました。
私はVscanの動作を確認した程度の知識しかないので、ServerProtectの特長について知りたい方は、Trend Micro公式サイトを確認してください。
ServerProtect for Storage | トレンドマイクロ (JP)
試してみた
検証環境の構成
検証環境の構築手順は省略しますが、以下のような構成になっています。
検証環境の構成図
各リソースの役割は以下です。
- AD / Vscanサーバー / テストサーバー
- FSxNが参加するドメインコントローラー
- Vscanからのスキャン要求を受けウイルススキャンするVscanサーバー
- ウイルススキャンをテストするため、FSxNにSMB接続してファイル操作を行う
- FSxN管理用
- FSxNのファイルシステムにSSHし、ONTAL CLIにてVscan周りの設定行う
- FSxN
- 検証環境でありコスト削減のためシングルAZ
ONTAP公式ドキュメントに記載のウイルススキャンのワークフローに基づいて設定していきます。
①Vscanサーバーのセットアップ
ONTAP Antivirus Connectorのインストール
ONTAP Antivirus ConnectorのData LIFに設定するIPアドレスを確認します。
SVMの管理IPアドレスがこれに該当しますのでメモしておきます。
コピーしておいたIPアドレスをData LIFに入力してTest
します。Pingをして接続性をチェックしているようです。
問題なければパスするのでUpdate
してSave
します。
以上でONTAP Antivirus Connectorのセットアップは完了です。
ServerProtectのインストール
つぎに、ServerProtectをインストールします。
ServerProtectの体験版を入手するため、以下よりアカウント情報を登録しました。
ServerProtect™ for Storage on NetApp無料体験版 | トレンドマイクロ | トレンドマイクロ (JP)
登録が終わると設定したメールアドレスに対して、30日間限定のアクティベーションコードが通知されます。ServerProtectのインストール時にアクティベーションコードが必要になりますのでメモしておきます。
VscanサーバーとなるEC2にRDPし、以下よりServerProtectをDLし、インストールしていきます。
シリアル番号にアクティベーションコードを入力します。
インフォーメーションサーバーと一般サーバーを同じVscanサーバーにインストールします。
引用: ServerProtect for Storage クイックスタートガイド P.11
それぞれの役割は以下のとおりです。
- インフォーメーションサーバー
- Trend MicroからパターンファイルをDLしたり、一般サーバーへパターンファイルの配信を行う
- 一般サーバー
- スキャンを行う
また、一般サーバーの種類を、デフォルトのEMC CAVAからRPCに変更します。
インストールに必要となるログオン情報を入力します。
検証環境ということもあり、ServerProtect用にADユーザーを作成するのを怠けたのでAdministratorを使用しました。
本来はAdministratorである必要はないので、ServerProtect用にADユーザーを作成してください。
インフォメーションサーバにアクセスするためのパスワードを設定します。
インストールが完了すると管理コンソールへアクセスするためのパスワード入力フォームが表示されますので、パスワードを入力します。
インストールに利用したアクティベーションコードの期限が30日であり、体験版であることを示す情報が表示されます。
ServerProtectとONTAP Antivirus Connectorを関連付けていきます。
一般サーバーを右クリックしてデバイスリストを開きます。
デバイス情報のモードをCluster-Mode AV Connector
を選択し、ServerProtectインストール時に入力したログオン情報を入力します。
一般サーバーは復数構成できるため、通常はサーバーごとにユーザーは違うはずです。
今回一つのVscanサーバーにインフォメーションサーバーと一般サーバーをインストールしているため、同じログオン情報で問題ありません。
デバイスの追加が完了しましたら、ONTAP Antivirus ConnectorのData LIFに指定したIPアドレスのデバイスが追加され、ステータスがオンラインになります。
パターンファイルを最新のものにアップデートするため、ダウンロードし配信します。
②スキャナープールの作成/③スキャナープールの適用
ここからやっとFSxNの設定に移ります。SVMにスキャナープールを作成します。
スキャナープールでは、SVMに接続できるVscanサーバと特権ユーザを定義します。
FsxId085786a790fa02fdb::> vserver vscan scanner-pool create -vserver svm1 -scanner-pool svm1-pool -hostnames 10.0.0.238 -privileged-users ec2domain\Administrator
FsxId085786a790fa02fdb::> vserver vscan scanner-pool show -vserver svm1 -scanner-pool svm1-pool
Vserver: svm1
Scanner Pool: svm1-pool
Applied Policy: primary
Current Status: off
Cluster on Which Policy Is Applied: FsxId085786a790fa02fdb
Scanner Pool Config Owner: vserver
List of IPs of Allowed Vscan Servers: 10.0.0.238
List of Host Names of Allowed Vscan Servers: 10.0.0.238
List of Privileged Users: ec2domain\Administrator
作成しただけではCurrent Status
がoffのままなので、スキャナープールを適用します。
FsxId085786a790fa02fdb::> vserver vscan scanner-pool apply-policy -vserver svm1 -scanner-pool svm1-pool -scanner-policy primary
FsxId085786a790fa02fdb::> vserver vscan scanner-pool show -vserver svm1 -scanner-pool svm1-pool
Vserver: svm1
Scanner Pool: svm1-pool
Applied Policy: primary
Current Status: on
Cluster on Which Policy Is Applied: FsxId085786a790fa02fdb
Scanner Pool Config Owner: vserver
List of IPs of Allowed Vscan Servers: 10.0.0.238
List of Host Names of Allowed Vscan Servers: 10.0.0.238
List of Privileged Users: ec2domain\Administrator
④オンアクセスポリシーの作成/⑤オンアクセスポリシーの有効
本エントリではデフォルトで用意されているオンアクセスポリシーを利用しています。
FsxId085786a790fa02fdb::> vserver vscan on-access-policy show -vserver svm1 -policy-name default_CIFS
Vserver: svm1
Policy: default_CIFS
Policy Status: on
Policy Config Owner: cluster
File-Access Protocol: CIFS
Filters: -
Mandatory Scan: on
Max File Size Allowed for Scanning: 2GB
File Paths Not to Scan: -
File Extensions Not to Scan: -
File Extensions to Scan: *
Scan Files with No Extension: true
このため、オンアクセスポリシーの作成やオンアクセスポリシーの有効はしていません。
個別のオンアクセスポリシーを利用する場合は、以下のコマンドで設定します。
vserver vscan on-access-policy create
vserver vscan on-access-policy enable
⑥ファイル操作プロファイルの変更(オプション)
SMB共有単位でスキャンするファイル操作プロファイルを設定することができます。
SMB共有を作成するとVscan File-Operations Profile
がstadard
で設定されます。
FsxId085786a790fa02fdb::> vserver cifs share create -vserver svm1 -share-name cifs-share -path "/vol1"
FsxId085786a790fa02fdb::> vserver cifs share show -vserver svm1 -share-name cifs-share -path "/vol1"
Vserver: svm1
Share: cifs-share
CIFS Server NetBIOS Name: SVM1
Path: /vol1
Share Properties: oplocks
browsable
changenotify
show-previous-versions
Symlink Properties: symlinks
File Mode Creation Mask: -
Directory Mode Creation Mask: -
Share Comment: -
Share ACL: Everyone / Full Control
File Attribute Cache Lifetime: -
Volume Name: vol1
Offline Files: manual
Vscan File-Operations Profile: standard
Maximum Tree Connections on Share: 4294967295
UNIX Group for File Create: -
standardはNetAppベストプラクティスとなっています。
引用元: Antivirus architecture
By default, the parameter is set to standard, which is NetApp best practice.
機械翻訳: デフォルトでは、パラメータは に設定されていますstandard。これは NetApp のベスト プラクティスです。
本エントリの検証では変更しませんでしたが、以下のようプロファイルが用意されています。
- no-scan
- SMB共有に対してウィルススキャンを一切トリガーしない
- standard
- デフォルト
- ファイルのopen、close、renameの各処理でウィルススキャンをトリガーする
- strict
- ファイルのopen、read、close、renameの各処理でウィルススキャンをトリガーする
- このプロファイルはより多くのスキャン要求を生成するため、パフォーマンスに影響を与える可能性がある
- writes-only
- 変更されたファイルがcloseされたときにのみウィルススキャンをトリガーする
参考までにプロファイルを変更したい場合は、以下のコマンドで変更することが可能です。
FsxId085786a790fa02fdb::> vserver cifs share modify -vserver svm1 -share-name cifs-share -vscan-fileop-profile strict
FsxId085786a790fa02fdb::> vserver cifs share show -vserver svm1 -share-name cifs-share -path "/vol1"
Vserver: svm1
Share: cifs-share
CIFS Server NetBIOS Name: SVM1
Path: /vol1
Share Properties: oplocks
browsable
changenotify
show-previous-versions
Symlink Properties: symlinks
File Mode Creation Mask: -
Directory Mode Creation Mask: -
Share Comment: -
Share ACL: Everyone / Full Control
File Attribute Cache Lifetime: -
Volume Name: vol1
Offline Files: manual
Vscan File-Operations Profile: strict
Maximum Tree Connections on Share: 4294967295
UNIX Group for File Create: -
⑦Vscanの有効
SVM単位でVscanを有効にする必要があります。デフォルトでは無効化されているので有効化します。
FsxId085786a790fa02fdb::> vserver vscan show -vserver svm1
Vserver: svm1
Vscan Status: off
FsxId085786a790fa02fdb::> vserver vscan enable -vserver svm1
FsxId085786a790fa02fdb::> vserver vscan show -vserver svm1
Vserver: svm1
Vscan Status: on
既にVscanサーバー側の準備が整っているので、SVMとVscanサーバーが接続されます。
FsxId085786a790fa02fdb::> vserver vscan connection-status show
Connected Connected
Vserver Node Server-Count Servers
--------------- ------------------- ------------ -----------------------------
svm1 FsxId085786a790fa02 1 10.0.0.238
fdb-01
svm1 FsxId085786a790fa02 0 -
fdb-02
2 entries were displayed.
Vscanのイベントログからも接続されたことを確認できました。
FsxId085786a790fa02fdb::> set -privilege advanced
FsxId085786a790fa02fdb::*> vserver vscan show-events -ins
Node: FsxId085786a790fa02fdb-01
Vserver: svm1
Event Log Time: 11/18/2024 05:44:21
Server: 10.0.0.238
Event Type: scanner-connected
File Path: -
Vscanner Vendor: trendmicro
Vscanner Version: 19.72300
Server Disconnect Reason: -
Vserver LIF Used for Connection: 10.0.4.244
1 entries were displayed.
動作確認
テストサーバーにRDPしてFSxNで作成したSMB共有cifs-share
にアクセスします。
PS C:\Users\Administrator> net use Z: \\svm1.ec2domain.example.com\cifs-share
>>
コマンドは正常に終了しました。
cifs-share直下にEICARファイルを作成するとすぐにウイルススキャンが行われ隔離してくれました。
FSxNのVscanイベントログにも記録されていることを確認できました。
FsxId085786a790fa02fdb::> set -privilege advanced
FsxId085786a790fa02fdb::*> vserver vscan show-events -ins
Node: FsxId085786a790fa02fdb-01
Vserver: svm1
Event Log Time: 11/18/2024 05:48:49
Server: 10.0.0.238
Event Type: file-infected
File Path: \vol1\vscan-test.txt
Vscanner Vendor: trendmicro
Vscanner Version: 19.72300
Server Disconnect Reason: -
Vserver LIF Used for Connection: 10.0.4.244
Node: FsxId085786a790fa02fdb-01
Vserver: svm1
Event Log Time: 11/18/2024 05:44:21
Server: 10.0.0.238
Event Type: scanner-connected
File Path: -
Vscanner Vendor: trendmicro
Vscanner Version: 19.72300
Server Disconnect Reason: -
Vserver LIF Used for Connection: 10.0.4.244
2 entries were displayed.
ちなみに、イベントログにすべてのファイルスキャン結果が記録されることを期待していたのですが、以下のようなEvent Typeを記録するだけで、詳細なログが記録されるわけではなさそうでした。
- scanner-connected
- scanner-disconnected
- scanner-updated
- file-infected
おわりに
VscanとServerProtectを組み合わせて試した結果の共有でした。
本当は大きいサイズのファイルに対しスキャンさせ、Vscanのスキャン要求タイムアウトが発生することなど、いくつか確認したいことがありましたが力尽きてしまいました。また時間を見つけて検証してみたいと思います。
ONTAP単体でウイルススキャンの機能を提供するのではなく、パートナーが提供するソリューションにスキャン処理をオフロードできるのは良い仕組みだなと思いました。
本エントリがどなたかのお役に立てれば幸いです。